Date		:	9 septembre 1991
		Protection	:	MOT DE PASSE
		Programme	:       HARDNOVA
		Outils		:	SOFT-ICE V2.50
		Fichier		:	DUME.EXE
		Temps pass�	:	2 HEURES
		Soci�t�		:	ELECTRONIC ARTS
		Divers	        :	
		Origine		:	INDONESIE
		Num�ro		:	141

	
	C'est le premier ELECTRONIC ARTS sur lequel je me casse les dents pour
	la xi�me  fois. Lorsqu'on n'arrive pas � trouver l'endroit o� le soft
	teste la validit� du mot de passe entr� il faut partir d�s l'origine
	c'est � dire mettre un point d'arr�t sur le port clavier en 60h RW et
	remonter. Pour tester la touche ENTER il suffit de poser l'�galit�
	suivante;

	BPIO 60h RW eq 1C ( sous SOFT-ICE ).

	J'ai 'p�dal�' dans le vide un bon moment avant de trouver o� les
	caract�res �taient rang�s en m�moire:

	SS:920	nombre de caract�res entr�s ( nombre qui sera compar� � CX )
	SS:921	premier caract�re.
	SS:922  second caract�re.
	SS:923  etc...

	La touche ENTER peut �galement �tre test� par un BP sur l'INT 21 sous-
	fonction 06. Voici la routine de v�rification des caract�res entr�s avec
	ceux choisi par le programme d'une mani�re al�atoire, ceux-ci sont cod�s
	avec un XOR 06 dans le fichier DUME.EXE :

	CS=2627
	CS:0AF8 8A84B113	MOV <ͻ	AL,[SI+13B1] ; Car. choisi par le soft.
	CS:0AFC 3C2A		CMP   �	AL,2A	     ; Si 2A fin de chaine.
	CS:0AFE 740E	    ��< JZ    �	0B0E	     ; Si dernier on v�rifie CX.
	CS:0B00 3406	    �	XOR   �	AL,06	     ; Chaque car. est d�cod�.
	CS:0B02 363A872009  �	CMP   �	AL,SS:[BX+0920] ; Teste la chaine...
	CS:0B07 753D	 �����<	JNZ   �	0B46	     ; Mauvais si # 0.
	CS:0B09 46	 �  �	INC   �	SI	     ; Prochain car. du soft.
	CS:0B0A 43	 �  �	INC   �	BX	     ; Prochain car. entr�.
	CS:0B0B 49	 �  �	DEC   �	CX ; CX contient le nombre de caract�res
			 �  �	      �	   ; de la r�ponse du programme.
	CS:0B0C EBEA	 �  �	JMP >ͼ	0AF8    ; Boucle la chaine.
	CS:0B0E 83F900	 �  ��>	CMP	CX,+00  ; CX = 0 si tous les caract�res
		  	 �			; on �t� test�.
	CS:0B11 7408	 �  	JZ	0B1B    ; Suite du programme si OK.
                         �  
        CS:0B46       <�ͼ			; Mauvaise r�ponse.
		
	Il faut donc que le r�sultat de la comparaison en CS:0B02 soit �gale �
	z�ro. Pour cela il suffit de placer deux NOP en CS:0B07 pour que la
	routine	se poursuive comme si le caract�re �tait le m�me que celui
	demand�. Il faut �galement que le contenu de CX soit �gal � z�ro lorsque
	le programme le teste puisqu'il correspond au nombre de caract�res que
	le joueur � tap� et qui figure en SS:920 avec le nombre que le
	programme a fourni. Donc la �galement il faut forcer le saut qui suit.
	Remplacer le saut conditionnel en 0B11 par un JMP. ( EB )

	Avec PCTOOLS chercher la chaine 2009753D et modifier 753D par 9090, puis
	la chaine 83F9007408 et remplacer 74 par EB.

	FREDDY